<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <button type="button" onclick="fn1(this);">btn1</button>

  <button type="button" id="btn2">btn2</button>
  <script>

    // 1.在html标签上面绑定事件：传入的this,指向发生事件的DOM节点对象
    function fn1(obj) {
      console.log(obj);  // obj的指向？ <button type="button" onclick="fn1(this);">btn1</button>
      console.log(this); //window
    }

    // 2. DOM 0级事件绑定：
    let btn2 = document.querySelector('#btn2');
    // btn2.onclick = function () {
    //   console.log(this); // <button type="button" id="btn2">btn2</button>
    // }

    // 3. DOM2 级事件绑定：
    btn2.addEventListener('click', function () {
      console.log(this); // <button type="button" id="btn2">btn2</button>
    }, true)  // true,捕获事件流，false，冒泡事件流。




  </script>
  <script>
    fn1()  // 在全局环境下直接被调用的，
    // var a = 1;
    // window.a  === a;
    window.fn1()


    // 判断this的指向的核心原则： 谁调用，this就指向谁！
  </script>
</body>

</html>